namespace CLELCore.Executable
{
	public class NTSpecific
	{
		public const int PE32_NT_SPECIFIC_SIZE = 0x44;
		public const int PE32PLUS_NT_SPECIFIC_SIZE = 0x58;
		
		private long _imagebase;
		private int _sectionalignment;
		private int _filealignment;
		private short _majorosversion;
		private short _minorosversion;
		private short _majorimageversion;
		private short _minorimageversion;
		private short _majorsubsysversion;
		private short _minorsubsysversion;
		private int _win32versionvalue;
		private int _sizeofimage;
		private int _sizeofheaders;
		private int _checksum;
		private short _subsystem;
		private short _dllcharacteristics;
		private long _sizeofstackreserve;
		private long _sizeofstackcommit;
		private long _sizeofheapreserve;
		private long _sizeofheapcommit;
		private int _loaderflags;
		private int _numberofdatadirectories;

		public long ImageBase
		{
			get
			{
				return _imagebase;
			}
			set
			{
				_imagebase = value;
			}
		}
		public int SectionAlignment
		{
			get
			{
				return _sectionalignment;
			}
			set
			{
				_sectionalignment = value;
			}
		}
		public int FileAlignment
		{
			get
			{
				return _filealignment;
			}
			set
			{
				_filealignment = value;
			}
		}
		public short MajorOSVersion
		{
			get
			{
				return _majorosversion;
			}
			set
			{
				_majorosversion = value;
			}
		}
		public short MinorOSVersion
		{
			get
			{
				return _minorosversion;
			}
			set
			{
				_minorosversion = value;
			}
		}
		public short MajorImageVersion
		{
			get
			{
				return _majorimageversion;
			}
			set
			{
				_majorimageversion = value;
			}
		}
		public short MinorImageVersion
		{
			get
			{
				return _minorimageversion;
			}
			set
			{
				_minorimageversion = value;
			}
		}
		public short MajorSubSysVersion
		{
			get
			{
				return _majorsubsysversion;
			}
			set
			{
				_majorsubsysversion = value;
			}
		}
		public short MinorSubSysVersion
		{
			get
			{
				return _minorsubsysversion;
			}
			set
			{
				_minorsubsysversion = value;
			}
		}
		public int Win32VersionValue
		{
			get
			{
				return _win32versionvalue;
			}
			set
			{
				_win32versionvalue = value;
			}
		}
		public int SizeOfImage
		{
			get
			{
				return _sizeofimage;
			}
			set
			{
				_sizeofimage = value;
			}
		}
		public int SizeOfHeaders
		{
			get
			{
				return _sizeofheaders;
			}
			set
			{
				_sizeofheaders = value;
			}
		}
		public int Checksum
		{
			get
			{
				return _checksum;
			}
			set
			{
				_checksum = value;
			}
		}
		public short Subsystem
		{
			get
			{
				return _subsystem;
			}
			set
			{
				_subsystem = value;
			}
		}
		public short DLLCharacteristics
		{
			get
			{
				return _dllcharacteristics;
			}
			set
			{
				_dllcharacteristics = value;
			}
		}
		public long SizeOfStackReserve
		{
			get
			{
				return _sizeofstackreserve;
			}
			set
			{
				_sizeofstackreserve = value;
			}
		}
		public long SizeOfStackCommit
		{
			get
			{
				return _sizeofstackcommit;
			}
			set
			{
				_sizeofstackcommit = value;
			}
		}
		public long SizeOfHeapReserve
		{
			get
			{
				return _sizeofheapreserve;
			}
			set
			{
				_sizeofheapreserve = value;
			}
		}
		public long SizeOfHeapCommit
		{
			get
			{
				return _sizeofheapcommit;
			}
			set
			{
				_sizeofheapcommit = value;
			}
		}
		public int LoaderFlags
		{
			get
			{
				return _loaderflags;
			}
			set
			{
				_loaderflags = value;
			}
		}
		public int NumberOfDataDirectories
		{
			get
			{
				return _numberofdatadirectories;
			}
			set
			{
				_numberofdatadirectories = value;
			}
		}

		public NTSpecific()
		{
		}
	}
}
